// 导入商品数据模块
const cueData = require('../../miniprogram/data/qg.js');

// 页面逻辑定义
Page({
  // 页面初始数据
  data: {
    product: null,
    currentImageIndex: 0,
    count: 1,
    showPopup: false,
    showBuySuccess: false  // 新增购买成功弹窗状态
  },

  // 页面加载生命周期
  onLoad(options) {
    // 解析URL参数中的商品ID
    const id = parseInt(options.id);
    // 在数据源中查找对应商品
    const product = cueData.cues.find(item => item.id == id);
    
    // 商品不存在时的处理
    if (!product) {
      // 显示错误提示
      wx.showToast({ title: '商品不存在', icon: 'error' });
      // 1.5秒后返回上一页
      return setTimeout(() => wx.navigateBack(), 1500);
    }

    // 更新页面数据（处理图片和评分）
    this.setData({
      product: {
        ...product,  // 展开商品原有属性
        images: this.normalizeImages(product.images), // 规范化图片数组
        rating: this.formatRating(product.rating)     // 格式化评分显示
      }
    });
    // 设置导航栏标题为商品名称
    wx.setNavigationBarTitle({ title: product.name });
  },

  // 图片数据规范化方法
  normalizeImages(images) {
    return (Array.isArray(images) ? images : [images]) // 确保转为数组
      .filter(url => typeof url == 'string')          // 过滤无效图片地址
      .concat('/images/default-product.png');         // 添加默认图片保底
  },

  // 评分格式化方法
  formatRating(rating) {
    return parseFloat(rating).toFixed(1)  // 保留1位小数
      .replace(/\.0$/, '');              // 去除".0"结尾
  },

  // 修改购买数量方法
  changeCount(e) {
    const type = e.currentTarget.dataset.type;  // 获取操作类型（add/sub）
    const maxStock = this.data.product.stock || 99; // 获取库存上限
    this.setData({
      count: Math.max(1, Math.min(maxStock,     // 限制在1~库存之间
        type == 'add' ? this.data.count + 1 : this.data.count - 1
      ))
    });
  },

  // 加入购物车方法
  addToCart() {
    const { product, count } = this.data;
    // 获取本地存储的购物车数据
    const cart = wx.getStorageSync('cart') || [];
    
    // 查找是否已存在相同规格商品
    const existingItem = cart.find(item => 
      item.id == product.id && 
      JSON.stringify(item.spec) == JSON.stringify(product.spec)
    );

    // 存在则增加数量，不存在则新增
    if (existingItem) {
      existingItem.count += count;
    } else {
      cart.push({
        ...product,     // 展开商品属性
        count,          // 当前选择数量
        selected: true, // 默认选中状态
        addTime: Date.now() // 加入时间戳
      });
    }

    // 更新本地存储
    wx.setStorageSync('cart', cart);
    // 显示操作成功弹窗
    this.togglePopup();
  },

  // 弹窗状态切换方法
  togglePopup() {
    this.setData({ showPopup: !this.data.showPopup });
  },

  // 跳转购物车页面方法
  navigateToCart() {
    this.togglePopup();  // 关闭弹窗
    wx.navigateTo({
      url: '/pages/gwche/gwche',
      success: () => {
        // 手动触发目标页面的数据刷新
        const pages = getCurrentPages();
        if(pages[pages.length-1].route == 'pages/gwche/gwche') {
          pages[pages.length-1].onLoad();
        }
      }
    });
  },

  // 继续购物
  continueShopping() {
    this.toggleBuySuccess();
    // 可以在这里添加其他逻辑，比如清空数量等
    this.setData({
      count: 1
    });
  },

  // 前往查看订单
  viewOrder() {
    this.toggleBuySuccess();
    wx.navigateTo({
      url: '/pages/dindan/dindan'
    });
  },

  // 立即购买
  buyNow() {
    const { product, count } = this.data;
    // 将商品数据存储到本地
    wx.setStorageSync('buyNowProduct', {
      ...product,
      count,
      buyTime: Date.now()
    });
    
    // 显示购买成功弹窗
    this.toggleBuySuccess();
  }
});